s=str(input());a=[];t=''
for i in range(10):
a.append(str(input()))
for i in range(0,80,10):
p=s[i:i+10]
for j in range(10):
if a[j]==p:
t+=str(j)
break
print(t)
#include <bits/stdc++.h>
#define ll long long
#define ib ios_base::sync_with_stdio(false)
#define ct cin.tie(NULL)
#define inf INT_MAX
using namespace std;
/*
1. Think Greedy
2. Think Brute Force
3. Think solution in reverse order
4. Think DP [ check constraints carefully ]
5. Check base cases for DP and prove solution for Greedy
6. Think Graph
*/
void solve() {
string word;
cin >> word;
unordered_map<string, int> m;
for(int i = 0 ; i < 10 ;i ++) {
string pattern;
cin >> pattern;
m[pattern] = i;
}
for(int i = 0 ; i < 8 ; i ++) {
string pattern = word.substr(i*10, 10);
cout << m[pattern];
}
cout << "\n";
}
int main() {
// your code goes here
ib;
ct;
// int t;
// cin >> t;
// while (t -- > 0) {
solve();
// }
return 0;
}
1619B - Squares and Cubes | 1619A - Square String |
1629B - GCD Arrays | 1629A - Download More RAM |
1629C - Meximum Array | 1629D - Peculiar Movie Preferences |
1629E - Grid Xor | 1629F1 - Game on Sum (Easy Version) |
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |
1328A - Divisibility Problem | 339A - Helpful Maths |
4A - Watermelon | 476A - Dreamoon and Stairs |
1409A - Yet Another Two Integers Problem | 977A - Wrong Subtraction |
263A - Beautiful Matrix | 180C - Letter |
151A - Soft Drinking | 1352A - Sum of Round Numbers |
281A - Word Capitalization | 1646A - Square Counting |